4장. Python (NumPy·PyTorch)
AI 엔지니어링 선수지식 — 4장. 대상: 고등학생·학부 1년차.
4. Python (NumPy·PyTorch)
AI 의 거의 모든 코드는 Python 으로 씁니다. 그중 NumPy(숫자 배열)와 PyTorch(딥러닝)가 양대 도구이며, 둘 다 벡터·행렬을 빠르게 다루는 것이 핵심입니다.
4.1 NumPy 배열 (ndarray)
숫자를 격자로 담는 고속 배열로, Python 기본 리스트보다 수십 배 빠릅니다.
비유 — 엑셀의 코드 버전. 셀에 숫자를 채우고 한 번에 계산하는 엑셀처럼, ndarray 는 반복문 없이 배열 전체를 한 줄로 연산합니다.
직접 해보기 — 리스트는
[x*2 for x in [1,2,3]]처럼 반복문이 필요하지만, NumPy 는np.array([1,2,3]) * 2한 줄로[2 4 6]을 얻습니다.
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape) # (2, 3)
print(a.mean(axis=0)) # [2.5 3.5 4.5] (열별 평균)
print(a[a > 3]) # [4 5 6] (조건 필터)
실무. 데이터 전처리·통계·이미지 처리의 기본기이며, Pandas·scikit-learn·PyTorch 가 전부 NumPy 위에 지어졌습니다.
LLM 연결. 임베딩·확률 배열을 NumPy 로 다룹니다. 모든 텐서 연산의 개념적 출발점입니다.
더 깊이 — NumPy Absolute Beginners
4.2 브로드캐스팅 (Broadcasting)
모양이 다른 배열끼리 연산할 때 작은 쪽을 자동으로 늘려 맞추는 규칙입니다.
비유 — 양념 한 스푼씩. 학생 30명 점수에 전원 +5점 할 때, 5를 30번 복사할 필요 없이 한 번에 더해지는 것입니다.
직접 해보기 —
np.array([[80],[90],[70]]) + 5는 전원 +5 되어[[85],[95],[75]]가 됩니다.
M = np.array([[1, 2, 3], [4, 5, 6]])
print(M - M.mean(axis=0)) # 각 열에서 평균 빼기 (자동 확장)
실무. 정규화(평균 빼고 표준편차 나누기)가 전부 브로드캐스팅이라 코드가 짧고 빨라집니다.
LLM 연결. 배치 데이터(문장 여러 개)에 같은 가중치를 적용할 때 브로드캐스팅이 자동 처리합니다.
더 깊이 — NumPy Broadcasting
4.3 PyTorch 텐서·자동미분
GPU 까지 갈 수 있는 NumPy 배열(텐서)에 미분 자동 계산(autograd)이 더해진 것입니다.
비유 — NumPy 의 형. ndarray 가 계산기라면, 텐서는 GPU 가속에 자동 미분까지 되는 계산기입니다.
직접 해보기 —
x = torch.tensor(2.0, requires_grad=True)로 두고y = x**3; y.backward()하면, 손으로 미분 안 해도x.grad가 3x² = 12 를 자동으로 줍니다.
import torch
x = torch.tensor(2.0, requires_grad=True)
(x**3).backward()
print(x.grad) # tensor(12.)
실무. 모든 딥러닝 모델이 PyTorch(또는 유사 프레임워크) 텐서로 작성되며, autograd 덕에 역전파를 손으로 짤 필요가 없습니다.
LLM 연결. 모든 LLM 이 텐서로 구현되고, autograd 가 섹션 2(미분)·5(역전파)를 자동화해 줍니다.
더 깊이 — PyTorch Learn the Basics
4.4 정리
| 도구 | 역할 |
|---|---|
| NumPy ndarray | 숫자 배열 기본 (벡터·행렬) |
| 브로드캐스팅 | 정규화·배치 연산 간결화 |
| PyTorch 텐서 | GPU 가속 배열 |
| autograd | 미분·역전파 자동화 |
한 문장으로, NumPy 로 숫자를 빠르게, PyTorch 로 GPU 와 자동미분까지 — 이 둘이 AI 코드의 손과 발입니다.
참고 자료 — NumPy Absolute Beginners · PyTorch Basics
클릭하거나 Space를 눌러 뒤집기